# 使用 Debian11 作为基础镜像
FROM debian:11
# 设置NGINX版本信息变量,通过--build-arg NGINX_VERSION=1.27.0 实现版本设置
ARG NGINX_VERSION
ARG DST

# 设置时区
ENV TZ=Asia/Shanghai
# 设置Shell
ENV SHELL /bin/sh
# 镜像描述
LABEL description="基于Debian11构建的Nginx镜像服务"
# 作者信息
LABEL maintainer="坐公交也用券"
# 项目主页
LABEL home="https://gitee.com/liumou_site/dockerfile"
# 个人网站
LABEL Site="https://liumou.site"
# Nginx版本
LABEL NginxVersion="$NGINX_VERSION"

# 设置镜像源加速
RUN sed -i "s@http.*\(com\|org\|cn\)@http://mirrors.cloud.tencent.com@g" /etc/apt/sources.list
# 更新源索引数据
RUN apt update
# 安装编译Nginx所需的依赖
RUN apt install -y build-essential libpcre3-dev zlib1g-dev libssl-dev
RUN apt install -y make openssl ca-certificates wget 

# 下载最新版本的Nginx源码
RUN wget http://nginx.org/download/nginx-$NGINX_VERSION.tar.gz -O /tmp/nginx.tar.gz

# 解压源码包
RUN tar -zxvf /tmp/nginx.tar.gz -C /tmp/
# 进入源码目录
WORKDIR /tmp/nginx-$NGINX_VERSION
# 开始预编译
RUN ./configure --prefix=${DST} --with-http_ssl_module --modules-path=${DST}/modules
#RUN ./configure --prefix=/usr/local/nginx --with-http_ssl_module --modules-path=/usr/local/nginx/modules

# 编译并安装Nginx
RUN make
RUN make install

# 创建配置目录
RUN mkdir -p ${DST}/conf.d
# 定义工作目录
WORKDIR /usr/local/nginx

RUN apt install -y net-tools
RUN apt install -y vim

# 设置环境变量
ENV PATH $PATH:/usr/local/nginx/sbin
# # 清除下载的源码包
RUN rm -rf /tmp/nginx-$NGINX_VERSION /tmp/nginx.tar.gz
# 删除deb包
RUN rm -rf  rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*.deb
# 创建配置软连接
RUN ln -s ${DST}/sbin/nginx /usr/sbin/nginx
RUN sed -i "s@root.*html@root /usr/share/nginx/html@g" ${DST}/conf/nginx.conf
RUN ln -s ${DST}/conf /etc/nginx
#RUN #cp -rf /usr/local/nginx/html/* /usr/share/nginx/html/
WORKDIR /usr/share/nginx/html
# 暴露80和443端口
EXPOSE 80 443

# 定义启动命令
CMD ["/usr/sbin/nginx", "-g", "daemon off;"]